// QtOSGSpike.cpp : Defines the entry point for the console application.
//

#include "MainWindow.h"
#include <QtGUI/QApplication>
#include <QtGUI/QMainWindow>
#include <osg/ArgumentParser>
#include <osg/Node>
#include <osgDb/ReadFile>
#include <iostream>

int main(int argc, char* argv[])
{
    QApplication application( argc, argv );
    QCoreApplication::setOrganizationName("MiB tech");
    QCoreApplication::setOrganizationDomain("code.google.com/p/d20grid");
    QCoreApplication::setApplicationName("d20Grid");

    MainWindow mainWindow;
    mainWindow.show();
    application.setActiveWindow(&mainWindow);

    return application.exec();
}


/*
- MainWindow
  - MainViewer

- MainViewer
  - SelectionManager
  - SceneManager
  - Drag/drop

- SceneManager(Model)
  - osg root reference
  - type group map
  - translates between osg::Node* and QModelIndex

- SelectionManager
  - SLOT selectionChanged
  - SelectionBoxManager
  - SelectionSet

----

- DocumentManager (Singleton)
  - Document

- MainWindow
  - Document

- Document
  - SceneManager(Model)
  - HomeGrid
  - load/save(future work)

- MainViewer
  - setModel()
  - setItemSelectionModel()
  - setHomeGrid()?

  DocumentManager::instance().selectionManager().select(node);

- SelectionMediator
  - contains select and deselect methods

*/
